//IRQ9 - ButtonPanelHandler
#define ALL_BUTTONS 0x1FFF

union InputPanelButtons
{
	unsigned int ButtonRegister;
	struct
	{
		unsigned int BTN_OK : 1;
		unsigned int BTN_1 : 1;
		unsigned int BTN_2 : 1;
		unsigned int BTN_3 : 1;
		unsigned int BTN_4 : 1;
		unsigned int BTN_5 : 1;
		unsigned int BTN_6 : 1;
		unsigned int BTN_7 : 1;
		unsigned int BTN_8 : 1;
		unsigned int BTN_9 : 1;
		unsigned int BTN_STAR : 1;
		unsigned int BTN_0 : 1;
		unsigned int BTN_POUND : 1;
		unsigned int RESERVED : 19;
	} bits;
};

typedef void (*InputPanelListener)(union InputPanelButtons buttonsPressed);

void setInputPanelListener(InputPanelListener listener);

void enableInputPanelInterrupts(union InputPanelButtons buttonsEnabled);

